﻿using System;
using System.Collections.Generic;
using System.Timers;
using Scommesse.Filters;

namespace Scommesse.Model
{
    internal static class EventoStarter
    {
        public static void StartCheck()
        {
            // effettua il controllo ogni 20 secondi
            Timer t = new Timer(20000);
            t.Elapsed += CheckForStart;
            t.Enabled = true;
            // effettua un primo controllo 
            //(intanto carica il palinsesto dall'xml così non si ottiene l'effetto caricamento dopo l'autenticazione)
            CheckForStart(t, null);
        }

        private static void CheckForStart(Object sender, ElapsedEventArgs args)
        {
            foreach(IEvento ev in FiltroPalinsesto.GetAllEventiByState(Palinsesto.GetPalinsesto().GetAllEventi(), StatoEvento.Scommettibile))
            {
                // se l'evento è iniziato, switcha lo stato a "In Corso", in modo da bloccare le scommesse relative all'evento
                if(ev.DataOra.CompareTo(DateTime.Now) < 0)
                    ev.Stato = StatoEvento.InCorso;
            }
        }
    }
}
